package com.itjin.contant;

/**
 * 帖子状态枚举
 */
public enum PostStatus {
    
    /**
     * 草稿状态
     */
    DRAFT(0, "草稿"),
    
    /**
     * 人工审核中
     */
    MANUAL_REVIEW(1, "人工审核中"),
    
    /**
     * 已删除
     */
    DELETED(2, "已删除"),
    
    /**
     * 已发布
     */
    PUBLISHED(3, "已发布"),
    
    /**
     * AI审查中
     */
    AI_REVIEWING(4, "AI审查中"),
    
    /**
     * 已拒绝（违规）
     */
    REJECTED(5, "已拒绝");
    
    private final Integer code;
    private final String description;
    
    PostStatus(Integer code, String description) {
        this.code = code;
        this.description = description;
    }
    
    public Integer getCode() {
        return code;
    }
    
    public String getDescription() {
        return description;
    }
    
    /**
     * 根据状态码获取枚举
     */
    public static PostStatus fromCode(Integer code) {
        if (code == null) {
            return null;
        }
        for (PostStatus status : PostStatus.values()) {
            if (status.code.equals(code)) {
                return status;
            }
        }
        return null;
    }
    
    /**
     * 获取状态描述
     */
    public static String getDescription(Integer code) {
        PostStatus status = fromCode(code);
        return status != null ? status.description : "未知状态";
    }
}
